package com.turing.post.organization.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 持卡人商户消费手续费
 * 
 * @author yxb
 * @since 2013.02.03
 */
@Remote
@Local
public interface MerchantPaidFeeDao {

	/**
	 * 创建
	 * 
	 * @param mpf
	 * @throws PCPSApplicationException
	 */
	public void insert(MerchantPaidFee mpf) throws PCPSApplicationException;

	/**
	 * 修改
	 * 
	 * @param mpf
	 * @throws PCPSApplicationException
	 */
	public void update(MerchantPaidFee mpf) throws PCPSApplicationException;

	/**
	 * 删除
	 * 
	 * @param mpf
	 * @throws PCPSApplicationException
	 */
	public void remove(MerchantPaidFee mpf) throws PCPSApplicationException;

	/**
	 * 根据商户号、业务类型查询
	 * 
	 * @param merchantNo
	 *            商户号
	 * @param businessType
	 *            业务类型
	 * @return MerchantPaidFee
	 */
	public MerchantPaidFee getMerchantPaidFeeByKey(String merchantNo,
			String businessType);

	/**
	 * 根据商户号查询消费手续费列表
	 * 
	 * @param merchantNo
	 *            商户号
	 * @return List 消费手续费列表
	 */
	public List<MerchantPaidFee> getMerchantPaidFeeListByMerchantNo(
			String merchantNo);

	/**
	 * 分页查询持卡人商户消费手续费列表
	 * 
	 * @param webInput
	 * @param businessType
	 * @param businessName
	 * @param page
	 * @return
	 */
	public List<MerchantPaidFee> getMerchantPaidFeeList(PCPSWebInput webInput,
			String merchantNo, String businessType, String businessName,
			Integer page);

	/**
	 * 查询持卡人商户消费手续费记录数
	 * 
	 * @param webInput
	 * @param businessType
	 * @param businessName
	 * @return
	 */
	public BigInteger getMerchantPaidFeeTotal(PCPSWebInput webInput,
			String merchantNo, String businessType, String businessName);
}
